In a live RAID (redundant array of inexpensive drives) system a user expects to be able to replace a drive while the system is online. However, if a driver for the array does not recognize the drive change, data corruption can result. RAID controllers without drive insertion/removal hardware support are particularly susceptible to such corruption.
Conventional RAID drivers depend on a reset routine or an IO monitor timeout routine in order to detect a drive removal. In a system with soft RAID drivers, there is no way to detect the drive change on a live RAID system if the replacement is done before the reset or IO monitor routine times out.
With conventional approaches, a user has to wait until the driver detects the drive removal, which is normally more than a minute considering all the drivers involved. Only after the RAID system detects the drive removal can a user safely insert a new drive. If the new drive is inserted before driver detects the old drive removal, then the system will function as if nothing happened and will result in data corruption.
It would be desirable to implement a drive replacement system that may be used in a RAID system that does not rely on a user to wait for the system before inserting a new drive.